/*************************
公司名:IOTEK
文件名：13-2_svn.c
开发人员：徐陈叶
描述：3个学生各学4门课，计算总平均分，并输出第n个学生成绩
完成日期：2016/05/29
Tell:18877479615
版本：Rev.0
*************************/
#include<stdio.h>

/*************************
函数名：input_score
描述：  输入3个学生各学4门课等的成绩
开发人员：徐陈叶
传入参数：数组行地址 ，row数组行数，column数组列数
返回值：无
**************************/
void input_score(float (*p)[4],int row,int column)
{
	int i = 0;
	int j = 0;

	printf("请输入%d位同学的成绩\n",row); //输入提示
	for(i = 0; i < row; i++)   //外循环row数组行数
	{
		printf("请输入第%d位同学的%d门成绩：",i+1,column);
		for(j = 0; j < column; j++) //内循环column数组列数
		{
			scanf("%f",*(p+i)+j); //循环输入各个成绩
		}
	}
}
/*************************
函数名：average_score
描述：  求3个学生4门课成绩的总平均分
开发人员：徐陈叶
传入参数：数组首地址 ，num数组行数乘列数的值
返回值：无
**************************/
void average_score(float *p,int num)
{
	float *temp = p;   //初始化变量
	float average = 0;

	for(;temp < p + num; temp++)  //用循环将所有成绩相加
	{
		average += *temp;
	}
	average /= num;      //求平均值
	printf("各同学的平均成绩为:%.2f\n",average); //输出结果
}
/*************************
函数名：search_student
描述：  查询输入的第几个学生的各门成绩
开发人员：徐陈叶
传入参数：数组行地址 ，row数组行数，column数组列数
返回值：无
**************************/
void search_student(float (*p)[4],int row,int column)
{
	int i = 0;	     //初始化变量
	int number = 0;

	printf("请输入要查询同学的编号:"); //输入提示
	if(!scanf("%d",&number) || number <1 ||number > row) //排错
	{
		printf("Input error!\n");
	}
	printf("No.%d:\n",number);   //输入要查询的同学
	for(i = 0; i < column; i++)  //输出查询同学的各课成绩
	{
		printf("%.2f ",*(*(p+number-1)+i));
	}
	putchar('\n');
}
int main(int argc,char * argv[])
{
	float array[3][4] = {{0}}; //初始化变量

	input_score(array,3,4); //调用输入函数输入
	average_score(*array,12); //调用函数求总平均值
	search_student(array,3,4); //查询需要查询同学的各个成绩
	return 0;
}
